//Sound was removed because of dependecy issues.

//#pragma once
//#include <fmod.h>
//#include <fmod.hpp>
//#include <Windows.h>
////#include "DirectInput.h"
//
//class Speaker
//{
//private:
//	//Default constructor hidden to force only one instance
//	Speaker(){}
//public:
//	//Holds all the files and system information
//	FMOD::System*		system;
//	FMOD::Sound*		SoundFX;
//	FMOD::Sound**		AllSoundFX[SOUNDS_SIZE];
//	FMOD::Sound*		Stream;
//	FMOD::Channel*		mySoundFXChannel;
//	FMOD::Channel*		myStreamChannel;
//	//Holds the information of which key was pressed
//	bool*				m_bKeysDown;
//	bool				SoundFXPlaying;
//	bool				StreamPlaying;
//
//	//Makes it a singleton
//	inline static Speaker* Engine()
//	{
//		static Speaker theAudioDevice;
//		return &theAudioDevice;
//	}
//
//	//Initializes all of FMOD
//	bool Initialize()
//	{
//		m_bKeysDown = NULL;
//		SoundFXPlaying = false;
//		StreamPlaying = false;
//
//		FMOD_RESULT			result;
//		unsigned int		version;
//		int					numdrivers;
//		FMOD_SPEAKERMODE	speakermode = FMOD_SPEAKERMODE_RAW;
//		FMOD_CAPS			caps;
//		char				name[256];
//
//		//Creates the System
//		FMOD::System_Create(&system);
//
//		//Sets all the system values
//		system->getVersion(&version);
//
//		system->getNumDrivers(&numdrivers);
//
//		if(numdrivers == 0)
//			system->setOutput(FMOD_OUTPUTTYPE_NOSOUND);
//		else
//		{
//			system->setSpeakerMode(speakermode);
//			
//			system->getDriverCaps(0,&caps,NULL,NULL,&speakermode);
//				//->getDriverCaps(0,&caps,NULL,NULL, &speakermode);
//			
//			if(caps & FMOD_CAPS_HARDWARE_EMULATED)
//				system->setDSPBufferSize(1024, 10);
//			
//			system->getDriverInfo(0, name, 256, 0);
//
//			if(strstr(name, "SigmaTel"))
//				system->setSoftwareFormat(48000, FMOD_SOUND_FORMAT_PCMFLOAT,
//				0, 0, FMOD_DSP_RESAMPLER_LINEAR);
//
//			result = system->init(100, FMOD_INIT_NORMAL, 0);
//			
//			if(result = FMOD_ERR_OUTPUT_CREATEBUFFER)
//			{
//				system->setSpeakerMode(FMOD_SPEAKERMODE_STEREO);
//
//				system->init(100, FMOD_INIT_NORMAL, 0);
//			}
//		}
//
//		//Loads the sound files
//		/*system->createStream("ElectroGypsy.mp3",
//			FMOD_LOOP_NORMAL | FMOD_2D | FMOD_HARDWARE
//			, 0, &Stream);*/
//		system->createSound("Resources/Enemy_Attack.wav",
//			FMOD_DEFAULT, 0, &SoundFX);
//		AllSoundFX[ENEMY_ATTACK_SOUND] = &SoundFX;
//		return true;
//	}
//
//	//Plays the SoundFX once until called again
//	void PlaySoundFXFile(eSounds Sound)
//	{
//		mySoundFXChannel->isPlaying(&SoundFXPlaying);
//		if(!SoundFXPlaying)
//		{
//			system->playSound(FMOD_CHANNEL_FREE, *AllSoundFX[Sound], false, &mySoundFXChannel);
//		}
//	}
//
//	//Plays the background music looping
//	void PlayStream()
//	{
//		myStreamChannel->isPlaying(&StreamPlaying);
//		if(!StreamPlaying)
//		{
//			system->playSound(FMOD_CHANNEL_FREE, Stream, false, &myStreamChannel);
//		}
//	}
//
//	//Stops all channels
//	void StopAll()
//	{
//		mySoundFXChannel->stop();
//		myStreamChannel->stop();
//	}
//};